///|
/// 将整数的字符串表示形式转换为 `Int` 值。
///
/// 参数：
///
/// * `str` : 要解析为整数的字符串。前导和尾随的空白字符（空格、制表符、换行符、回车符）会被自动去除。
///
/// 返回值：如果字符串可以成功解析为有效的整数，则返回 `Some(value)`；如果字符串无法识别为整数表示形式，则返回 `None`。
///
/// 示例：
///
/// ```moonbit
/// inspect(@amor2025/convert.str_to_int("42"), content="Some(42)")
/// inspect(@amor2025/convert.str_to_int("-123"), content="Some(-123)")
/// inspect(@amor2025/convert.str_to_int("  456  "), content="Some(456)")
/// inspect(@amor2025/convert.str_to_int("0"), content="Some(0)")
/// inspect(@amor2025/convert.str_to_int("abc"), content="None")
/// inspect(@amor2025/convert.str_to_int(""), content="None")
/// inspect(@amor2025/convert.str_to_int("12.34"), content="None")
/// ```
///
pub fn str_to_int(str : String) -> Int? {
  @lib.Convert::string_to_int(str)
}


///|
/// |
/// 将整数的字符串表示形式转换为 `Int` 值，自动截断小数部分。
///
/// 参数：
///
/// * `str` :
///   要解析为整数的字符串。前导和尾随的空白字符（空格、制表符、换行符、回车符）会被自动去除。如果字符串包含小数点，则只考虑小数点前的整数部分。
///
/// 返回值：如果字符串可以成功解析为有效的数值（存在小数部分时会截断），则返回 `Some(value)`；如果字符串无法识别为数值表示形式，则返回
/// `None`。
///
/// 示例：
///
/// ```moonbit
/// inspect(@amor2025/convert.str_to_int_truncate("42"), content="Some(42)")
/// inspect(@amor2025/convert.str_to_int_truncate("-123"), content="Some(-123)")
/// inspect(@amor2025/convert.str_to_int_truncate("  456  "), content="Some(456)")
/// inspect(@amor2025/convert.str_to_int_truncate("12.34"), content="Some(12)")
/// inspect(@amor2025/convert.str_to_int_truncate("-5.89"), content="Some(-5)")
/// inspect(@amor2025/convert.str_to_int_truncate("0.999"), content="Some(0)")
/// inspect(@amor2025/convert.str_to_int_truncate("abc"), content="None")
/// inspect(@amor2025/convert.str_to_int_truncate(""), content="None")
/// ```
///
pub fn str_to_int_truncate(str : String) -> Int? {
  @lib.Convert::string_to_int_truncate(str)
}

///|
/// 将浮点数的字符串表示形式转换为 `Double` 值。
///
/// 参数：
///
/// * `str` : 要解析为浮点数的字符串。前导和尾随的空白字符（空格、制表符、换行符、回车符）会被自动去除。
///
/// 返回值：如果字符串可以成功解析为有效的浮点数，则返回 `Some(value)`；如果字符串无法识别为浮点数表示形式，则返回 `None`。
///
/// 示例：
///
/// ```moonbit
/// inspect(@amor2025/convert.str_to_double("3.14"), content="Some(3.14)")
/// inspect(@amor2025/convert.str_to_double("42"), content="Some(42)")
/// inspect(@amor2025/convert.str_to_double("  -2.5  "), content="Some(-2.5)")
/// inspect(@amor2025/convert.str_to_double("1.23e-4"), content="Some(0.00012299999999999998)")
/// inspect(@amor2025/convert.str_to_double("abc"), content="None")
/// inspect(@amor2025/convert.str_to_double(""), content="None")
/// ```
///
pub fn str_to_double(str : String) -> Double? {
  @lib.Convert::string_to_double(str)
}

///|
/// 将布尔值的字符串表示形式转换为 `Bool` 值。
///
/// 参数：
///
/// * `str` : 要解析为布尔值的字符串。前导和尾随的空白字符（空格、制表符、换行符、回车符）会被自动去除。
///
/// 返回值：如果字符串可以成功解析为有效的布尔值，则返回 `Some(value)`；如果字符串无法识别为布尔值表示形式，则返回 `None`。
///
/// 示例：
///
/// ```moonbit
/// inspect(@amor2025/convert.str_to_bool("true"), content="Some(true)")
/// inspect(@amor2025/convert.str_to_bool("false"), content="Some(false)")
/// inspect(@amor2025/convert.str_to_bool("  TRUE  "), content="Some(true)")
/// inspect(@amor2025/convert.str_to_bool("False"), content="Some(false)")
/// inspect(@amor2025/convert.str_to_bool("yes"), content="None")
/// inspect(@amor2025/convert.str_to_bool("1"), content="None")
/// ```
///
pub fn str_to_bool(str : String) -> Bool? {
  @lib.Convert::string_to_bool(str)
}
